package io.github.talelin.latticy.service;

import io.github.talelin.latticy.model.OrderDO;

/**
 * 订单积分处理服务接口
 * @author talelin
 */
public interface OrderPointsService {

    /**
     * 处理订单确认后的积分变动
     * @param order 订单信息
     */
    void processOrderPoints(OrderDO order);

    /**
     * 处理卖家积分扣减（出售商品）
     * @param sellerId 卖家ID
     * @param amount 支付金额
     * @param orderId 订单ID
     */
    void deductSellerPoints(Integer sellerId, java.math.BigDecimal amount, Long orderId);

    /**
     * 处理买家积分增加（购买商品）
     * @param buyerId 买家ID
     * @param amount 支付金额
     * @param orderId 订单ID
     */
    void addBuyerPoints(Integer buyerId, java.math.BigDecimal amount, Long orderId);

    /**
     * 处理订单取消时的积分回滚
     * @param order 订单信息
     */
    void rollbackOrderPoints(OrderDO order);
}
